home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 096 / usruptdt.arc / USRUPDT.BAS next >
BASIC Source File  |  1985-01-09  |  4KB  |  107 lines

  1. 10 ' RBBS-PC USERS DIRECTORY UPDATE PROGRAM
  2. 20 ' BY JOHN CERVENY 6/8/84
  3. 30 '
  4. 40 DIM NAME.SORT$(1000)
  5. 50 DEFINT A-Z
  6. 60 '
  7. 70 ' PRINT THE TITLE PAGE ON THE SCREEN.
  8. 80 '
  9. 90 CLS
  10. 100 LOCATE  7,18:PRINT STRING$(45,42)
  11. 110 PRINT TAB(18);"*";TAB(62);"*"
  12. 120 PRINT TAB(18);"* RBBS - PC USERS DIRECTORY UPDATE PROGRAM  *"
  13. 130 PRINT TAB(18);"*";TAB(62);"*"
  14. 140 PRINT TAB(18);"*";TAB(33); "by John Cerveny";TAB(62);"*"
  15. 150 PRINT TAB(18);"*";TAB(62);"*"
  16. 160 PRINT TAB(18);STRING$(45,42)
  17. 170 LOCATE 18,26,0:PRINT"PRESS SPACE BAR TO CONTINUE"
  18. 180 POKE 106,0
  19. 190 CMD$ = INKEY$
  20. 200 IF CMD$ = ""THEN GOTO 190
  21. 210 IF CMD$ = CHR$(27) THEN GOTO 1050
  22. 220 IF CMD$ = " " THEN GOTO 270
  23. 230 GOTO 180
  24. 240 '
  25. 250 ' ASK THE USER FOR THE SOURCE AND DESTINATION FILES.
  26. 260 '
  27. 270 CLS:PRINT:INPUT "What is the SOURCE file? (default file is USERS)";SOURCE$
  28. 280 PRINT: IF SOURCE$="" THEN SOURCE$="USERS"
  29. 290 INPUT "What is the DESTINATION file? (default file is BULLET4)";DESTIN$
  30. 300 PRINT: IF DESTIN$="" THEN DESTIN$="BULLET4"
  31. 310 PRINT:PRINT "ENTER  1  TO PROCEED WITH UPDATE OF USER FILE, "
  32. 320 PRINT "       2  TO CHANGE THE SOURCE AND DESTINATION FILES,"
  33. 330 INPUT "       3  TO ABORT THE PROGRAM.";CHOICE$
  34. 340 IF CHOICE$="" GOTO 380
  35. 350 IF ASC(CHOICE$)<49 OR ASC(CHOICE$)>51 THEN GOTO 380
  36. 360 IF CHOICE$="1"GOTO 390 ELSE IF CHOICE$="2"GOTO 270
  37. 370 IF CHOICE$="3" GOTO 1050
  38. 380 PRINT:PRINT"INVALID CHOICE.  PLEASE CHOOSE  1, 2, OR 3": GOTO 310
  39. 390 CLS: PRINT: PRINT "USER FILE UPDATE RUN STARTED AT ";TIME$ :PRINT
  40. 400 '
  41. 410 ' CHECK TO SEE IF THE SOURCE FILE EXISTS.
  42. 420 '
  43. 430 ON ERROR GOTO 1040
  44. 440 OPEN SOURCE$ FOR INPUT AS #1 : CLOSE #1
  45. 450 '
  46. 460 ' THE SOURCE FILE (WHICH SHOULD BE IN SEQUENTIAL FORMAT) IS OPENED FOR
  47. 470 ' INPUT.  THE NAMES FROM THE SOURCE FILE ARE SWITCHED FROM THE FIRST
  48. 480 ' NAME - LAST NAME FORMAT TO ONE OF LAST NAME - FIRST NAME, AND A COMMA
  49. 490 ' IS INSERTED IN BETWEEN THE LAST AND FIRST NAMES.
  50. 500 '
  51. 510 OPEN "R",1,SOURCE$,128:END.USER=LOF(1)/128
  52. 520 FIELD 1,31 AS N$
  53. 530 COUNT = 1
  54. 540 IF COUNT > END.USER THEN GOTO 660
  55. 550 GET 1, COUNT
  56. 560 FSTBLKN = INSTR(N$," ")
  57. 570 SNDBLKN = INSTR(FSTBLKN + 1,N$," ") - 1
  58. 580 IF SNDBLKN < 1 THEN GOTO 640
  59. 590 USER.NAME$ = LEFT$(N$,SNDBLKN)
  60. 600 LAST.NAME = (SNDBLKN - FSTBLKN)
  61. 610 USER.NAME$ = RIGHT$(USER.NAME$,LAST.NAME) + ", " +LEFT$(USER.NAME$,FSTBLKN)
  62. 620 I = I + 1
  63. 630 NAME.SORT$(I) = USER.NAME$
  64. 640 COUNT = COUNT + 1: GOTO 540
  65. 650 CLOSE #1
  66. 660 '
  67. 670 ' THE USER NAME LISTING WILL NOW BE SORTED AND SENT TO THE DESTINATION FILE
  68. 680 ' THE NEW CONTENTS OF THE FILE WILL APPEAR ON THE SCREEN AS WELL.
  69. 690 '
  70. 700 OPEN DESTIN$ FOR OUTPUT AS #2
  71. 710 FOR K=1 TO I-1
  72. 720 FOR J=K+1 TO I
  73. 730 IF NAME.SORT$(J) > NAME.SORT$(K) THEN GOTO 750
  74. 740 SWAP NAME.SORT$(J), NAME.SORT$(K)
  75. 750 NEXT J,K
  76. 760 PRINT:PRINT "THE FILE '";DESTIN$;"' WILL APPEAR AS FOLLOWS:":PRINT
  77. 770 S$ = STRING$(79,42)
  78. 780 PRINT #2, S$
  79. 790 PRINT S$
  80. 800 PRINT #2, "*";TAB(79);"*"
  81. 810 PRINT "*"; TAB(79);"*"
  82. 820 PRINT #2,"*"; TAB(30);"-- USERS DIRECTORY --";TAB(79);"*"
  83. 830 PRINT "*"; TAB(30);"-- USERS DIRECTORY --";TAB(79);"*"
  84. 840 PRINT #2, "*"; TAB(79);"*"
  85. 850 PRINT "*"; TAB(79); "*"
  86. 860 COL = (I+1)/3
  87. 870 X=1: Y=COL+1: Z=COL*2+1
  88. 880 FOR C=1 TO COL
  89. 890 PRINT #2, "*       ";NAME.SORT$(X); TAB(33); NAME.SORT$(Y); TAB(57);
  90. 900 PRINT #2, NAME.SORT$(Z); TAB(79);"*"
  91. 910 PRINT "*       ";NAME.SORT$(X); TAB(33); NAME.SORT$(Y); TAB(57);
  92. 920 PRINT NAME.SORT$(Z); TAB(79);"*"
  93. 930 X=X+1 : Y=Y+1 : Z=Z+1
  94. 940 NEXT C
  95. 950 PRINT #2, "*";TAB(79);"*"
  96. 960 PRINT "*"; TAB(79); "*"
  97. 970 PRINT #2, "*";TAB(79);"*"
  98. 980 PRINT "*"; TAB(79); "*"
  99. 990 PRINT #2, S$
  100. 1000 PRINT S$
  101. 1010 PRINT : PRINT "USER FILE UPDATE RUN ENDED AT ";TIME$: PRINT
  102. 1020 CLOSE #2
  103. 1030 GOTO 1050
  104. 1040 PRINT "SOURCE FILE COULD NOT BE FOUND."
  105. 1050 PRINT: PRINT "END OF PROGRAM"
  106. 1060 END
  107.